03. 部署情绪分析模型
您已经学习了如何在SageMaker中创建和训练模型以及如何部署它们。在此示例中,我们将了解如何在简单的Web应用程序中使用已部署的模型。这里将简单使用一个情绪预测机器学习模型部署。
为了使我们的简单Web应用程序与已部署的模型进行交互,我们将不得不解决一些问题。
第一个障碍是前面已经提到的。
使用SageMaker部署模型时创建的端点是安全的,这意味着只有通过AWS验证的实体才能从部署的模型发送或接收数据。这是一个问题,因为为简单的Web应用程序进行身份验证比我们想要的工作多一点。
所以我们需要找到解决这个问题的方法。
第二个障碍是我们部署的模型希望我们在处理后发送评论。也就是说,它假设我们已经对评论进行了标记,然后创建了一个单词编码包。但是,我们希望我们的用户能够在我们的网络应用中输入任何评论。
我们也将看到我们如何克服这个问题。
要解决这些问题,我们需要使用一些额外的亚马逊服务。特别是,我们将关注Amazon Lambda和API Gateway。
这次的案例会使用到Tutorials文件夹中查看IMDB Sentiment Analysis - XGBoost - Web App.ipynb。
如前所述,我们需要克服两个障碍。第一个是安全问题,第二个是数据处理。我们解决这些问题的方法是使用Amazon Lambda和API Gateway。
我们的Web应用程序的结构如下图所示。

这意味着当有人使用我们的网络应用程序时,会发生以下情况。
- 首先,用户将输入评论并将其输入我们的网络应用程序。
- 然后,我们的Web应用程序会将该评论发送到我们使用API Gateway创建的端点。将构建此端点,以便任何人(包括我们的Web应用程序)都可以使用它。
- API网关将数据转发到Lambda函数
- 一旦Lambda函数收到用户的评论,它将通过对其进行标记来处理该评论,然后创建一组对结果进行编码的单词。之后,它会将已处理的评论发送到我们部署的模型。
- 一旦部署的模型对已处理的审阅执行推断,生成的情绪将返回到Lambda函数。
- 最后,我们的Lambda函数将使用使用API网关构建的端点将情绪结果返回给我们的Web应用程序。